package main

import "fmt"

func main() {
	/*
		fmt.Println("before panic")
		panic("crash")
		//panic 之后的代码是永远不可达的
		fmt.Println("after panic")
	*/
	//会在调 panic 之前，执行 defer 函数
	defer func() {
		fmt.Println("defer func")
	}()

	arr := []int{1, 2, 3}
	//数组越界，同样会在底层调用 panic 函数，终止程序
	fmt.Println(arr[4])
}
